//package com.zrx.zrxaiagent.rabbitMQ;
//
//import org.springframework.amqp.core.*;
//import org.springframework.amqp.rabbit.annotation.EnableRabbit;
//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
//import org.springframework.amqp.rabbit.core.RabbitTemplate;
//import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.HashMap;
//import java.util.Map;
//
//@Configuration
//@EnableRabbit
//public class RabbitMQConfig {
//
//    /**
//     * 延迟交换机
//     */
//    @Bean
//    public CustomExchange delayExchange() {
//        Map<String, Object> args = new HashMap<>();
//        args.put("x-delayed-type", "direct");
//        return new CustomExchange("delay.exchange", "x-delayed-message", true, false, args);
//    }
//
//    /**
//     * 普通交换机
//     */
//    @Bean
//    public DirectExchange immediateExchange() {
//        return new DirectExchange("immediate.exchange");
//    }
//
//    /**
//     * 延迟队列
//     */
//    @Bean
//    public Queue delayQueue() {
//        return QueueBuilder.durable("delay.queue").build();
//    }
//
//    /**
//     * 普通队列
//     */
//    @Bean
//    public Queue immediateQueue() {
//        return QueueBuilder.durable("immediate.queue").build();
//    }
//
//    /**
//     * 延迟队列绑定
//     */
//    @Bean
//    public Binding delayBinding() {
//        return BindingBuilder.bind(delayQueue())
//                .to(delayExchange())
//                .with("delay.routingkey")
//                .noargs();
//    }
//
//    /**
//     * 普通队列绑定
//     */
//    @Bean
//    public Binding immediateBinding() {
//        return BindingBuilder.bind(immediateQueue())
//                .to(immediateExchange())
//                .with("immediate.routingkey");
//    }
//
//    /**
//     * RabbitTemplate配置
//     */
//    @Bean
//    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
//        RabbitTemplate template = new RabbitTemplate(connectionFactory);
//        template.setMessageConverter(new Jackson2JsonMessageConverter());
//
//        // 消息发送确认回调
//        template.setConfirmCallback((correlationData, ack, cause) -> {
//            if (ack) {
//                System.out.println("消息发送成功");
//            } else {
//                System.out.println("消息发送失败: " + cause);
//            }
//        });
//
//        // 消息返回回调
//        template.setReturnsCallback(returned -> {
//            System.out.println("消息被退回: " + returned.getMessage());
//        });
//
//        return template;
//    }
//}
